Red Hat Home Skip the links Useful Links: * Support * Online Shop * Download Main Site Links: * Home * Enterprise Linux * Training * Red Hat Network * Open Source Now * Fedora * Store * Worldwide o Asia Pacific o Australia o Belgium o Brazil o China o Czech Republic o France o Germany o Hong Kong o Indian Subcontinent o Italy o Japan o Korea o Latin America o Luxembourg o Netherlands o Singapore o South Africa o Spain o Sweden o Taiwan o United Kingdom o USA Links for this section: * Services * Solutions * Choice * Migrate * Renew * Partners * Documentation * Red Hat Magazine * Company Red Hat Linux 8.0: Official Red Hat Linux Reference Guide Indietro Capitolo 14. Apache HTTP Server Avanti Direttive di configurazione in httpd.conf Il file di configurazione di Apache HTTP Server è /etc/httpd/conf/httpd.conf, un file ben commentato che, in un certo senso, si spiega da solo. La sua configurazione di default si adatta bene a molteplici situazioni, anche se è comunque necessario acquisire familiarità con alcune delle più importanti opzioni di configurazione. Attenzione Avvertimento Con la versione 2.0 di Apache HTTP Server, molte opzioni di configurazione sono state modificate. Se dovete migrare un file di configurazione della versione 1.3 al nuovo formato, consultate la sezione Migrazione dei file di configurazione di Apache HTTP Server 1.3. Se avete necessità di configurare Apache HTTP Server, modificate httpd.conf e ricaricate, riavviate oppure spegnete e riavviate, il processo httpd. Per informazioni su come ricaricare, chiudere e avviare Apache HTTP Server, consultate la sezione Avvio e chiusura di httpd. Prima di modificare httpd.conf si consiglia di fare una copia del file originale, chiamandola per esempio httpd.conf-old. Creando un backup, infatti, è possibile rimediare a eventuali errori commessi durante la modifica del nuovo file di configurazione. Qualora, in seguito a un errore, il server Web non dovesse funzionare correttamente, dovete anzitutto andare a rivedere le modifiche che avete effettuato in httpd.conf. e assicurarvi di non aver commesso errori di battitura. Dopodiché controllate il file di log degli errori del server Web (/var/log/httpd/error_log). Se non avete molta esperienza, vi può risultare difficile interpretare il log degli errori. Tuttavia, se vi siete appena imbattuti in un problema, le ultime voci elencate in questo file dovrebbero fornire sufficienti informazioni su ciò che può essere avvenuto. Nelle sezioni che seguono, troverete una breve descrizione delle direttive incluse in httpd.conf. Tali descrizioni non sono approfondite. Per reperire maggiori informazioni potete consultare la relativa documentazione, disponibile in formato HTML all'indirizzo http://localhoast/manual/ oppure nel sito Apache all'indirizzo http://httpd.apache.org/docs-2.0/. Per ulteriori dettagli sulle direttive mod_ssl, consultate la documentazione disponibile all'indirizzo http://localhost/mod/mod_ssl.html o lo User Manual oppure nel sito Apache all'indirizzo http://httpd.apache.org/docs-2.0/mod/mod_ssl.html. ServerRoot ServerRoot è la directory di livello superiore che contiene i file del server. Entrambi i server (sicuro e non sicuro) sono impostati per utilizzare ServerRoot di "/etc/httpd". LockFile LockFile imposta il percorso per il file di lock utilizzato quando viene compilato httpd con USE_FCNTL_SERIALIZED_ACCEPT o USE_FLOCK_SERIALIZED_ACCEPT. È consigliabile lasciare LockFile al suo valore di default. PidFile PidFile è il file nel quale è memorizzato il pid (ID del processo) del server Web. Secondo la configurazione il pid viene memorizzato nella directory /var/run/httpd.pid. ScoreBoardFile ScoreBoardFile immagazzina le informazioni interne del processo server, utilizzate per la comunicazione tra il processo padre e i processi figli. Red Hat Linux si serve della memoria condivisa per memorizzare il comando ScoreBoardFile; mentre il valore predefinito di /etc/httpd/logs/apache_runtime_status viene utilizzato solo come ripiego. Timeout Timeout definisce, in secondi, quanto tempo aspetta il server per la ricezione e la trasmissione durante la comunicazione. In particolare, definisce quanto tempo trascorre prima che il server riceva una richiesta GET e prima che riceva pacchetti TCP su richiesta POST o PUT, nonché il tempo di attesa perché gli ACK rispondano ai pacchetti TCP. Timeout è impostato per attendere 300 secondi, ossia il tempo adeguato per la maggior parte delle situazioni. KeepAlive KeepAlive stabilisce se il server consentirà più di una richiesta per connessione o, in altri termini, le connessioni persistenti. KeepAlive può essere usato per evitare che un client utilizzi troppe risorse del server. Per default, Keepalive è impostato su off. Se è impostato su on e il server è particolarmente occupato, il server può produrre rapidamente il numero più elevato di processi figli. In tal caso, il server diventa piuttosto lento. Se abilitate Keepalive, dovete impostare il KeepAliveTimout (vedere la sezione KeepAliveTimeout) su valori bassi e controllare i server /var/log/httpd/error_log. Questo file di log vi consente di sapere se il server è carente di processi figli. MaxKeepAliveRequests La direttiva imposta il numero massimo di richieste accettate su ogni connessione persistente. Il team di sviluppo di Apache consiglia di impostare un valore alto, al fine di migliorare le prestazioni del server. MaxKeepAliveRequests è impostato per default su 100, un valore che si adatta alla maggior parte delle possibili situazioni. KeepAliveTimeout KeepAliveTimeout imposta (in secondi) il tempo durante il quale il server attende una nuova richiesta prima di chiudere la connessione. Una volta ricevuta la richiesta, si applica invece la direttiva Timeout. MinSpareServers e MaxSpareServers Apache HTTP Server si adatta dinamicamente al carico di lavoro mantenendo un numero appropriato di processi di riserva del server, a seconda del traffico. Viene eseguita la verifica del numero di server in attesa di richiesta che vengono eliminati se superano il valore di MaxSpareServers oppure vengono creati se sono inferiori al valore di MinSpareServers. Il valore di default di MinSpareServers è 5, mentre quello di MaxSpareServers è 20. Queste impostazioni di default sono adatte alla maggior parte delle possibili situazioni. Si consiglia di non aumentare troppo il valore di MinSpareServers, poiché si rischia di sovraccaricare il server quando il traffico non è eccessivo. StartServers StartServers imposta il numero di processi server che devono essere creati all'avvio del servizio. Poiché il server Web elimina o crea dinamicamente i processi server in funzione del traffico, non è necessario cambiare questo parametro. Il vostro server Web è impostato per far partire 8 processi all'avvio. MaxClients MaxClients imposta un limite per il numero totale di processi server (e quindi anche di client connessi contemporaneamente) in esecuzione. Si consiglia di mantenere alto il valore di MaxClients (di default 150), in modo che, una volta raggiunto il limite massimo di client connessi in contemporanea, non saranno possibili ulteriori connessioni. Non è possibile impostare un valore superiore a 256 senza ricompilare Apache. La ragione principale per cui conviene limitare il numero di connessioni simultanee è quella di evitare che si verifichi un crash del sistema operativo. MaxRequestsPerChild MaxRequestsPerChild imposta il numero massimo di richieste che ogni processo figlio può gestire prima che sia eliminato. Lo scopo principale di MaxRequestsPerChild è quello di evitare che un processo rimanga in esecuzione troppo a lungo, occupando un'eccessiva quantità di memoria. Il valore di default è 1000. Listen Il comando Listen specifica su quale porta il server Web riceve le richieste. Per default il server Web attende le richieste sulla porta 80 per la comunicazione Web non sicura e (nei tag relativi all'host virtuale che definiscono il server sicuro) sulla porta 443 per la comunicazione sicura. Se impostate Apache HTTP Server perché attenda su una porta inferiore alla 1024, dovete eseguire il processo httpd come root. Per le porte superiori alla 1024, potete eseguirlo come un utente normale. Listen può inoltre essere usato per specificare particolari indirizzi IP dai quali il server accetta le connessioni. Include Include consente ad altri file di configurazione di essere inclusi in fase di runtime. Per percorso per questi file di configurazione può essere assoluto o relativo per il comando ServerRoot. Importante Importante Perché il server utilizzi moduli in singoli pacchetti, come mod_ssl, mod_perl e php, la direttiva riportata di seguito deve trovarsi in Section 1: Global Environment del file http.conf: Include conf.d/*.conf LoadModule LoadModule è utilizzata per caricare i moduli Dynamic Shared Object (DSO, oggetti condivisi dinamicamente). Maggiori informazioni sul supporto DSO di Apache HTTP Server e sull'esatto modo di impiego della direttiva LoadModule sono disponibili nel la sezione Aggiungere moduli al server. L'ordine di caricamento dei moduli non è più importante in Apache HTTP Server 2.0. Per ulteriori informazioni sul supporto di Apache HTTP Server 2.0 per il DSO, consultate la sezione Supporto DSO (Dynamic Shared Object). IfDefine I tag e utilizzano le direttive di configurazione specificate al loro interno se nel primo tag la definizione "test" risulta essere vera. Le direttive vengono ignorate se il test è falso. Il test nei tag è il nome di un parametro (per esempio, HAVE_PERL). Se il parametro è definito (ossia viene fornito come argomento del comando dell'avvio del server), allora il test è "vero". In questo caso il server Web viene attivato e le direttive contenute nei tag IfDefine vengono applicate. I tag contengono per default la configurazione dell'host virtuale per il server Web sicuro. I tag contengono anche le direttive LoadModule e AddModule per il modulo ssl_module. ExtendedStatus La direttiva ExtendedStatus verifica se Apache genera le informazioni di base (off) o dettagliate (on) sullo stato del server quando viene chiamato l'handler server-status mediante il tag Location. Per maggiori informazioni consultate la sezione Location. User La direttiva User imposta lo userid utilizzato dal server per rispondere alle richieste. L'impostazione della direttiva User determina gli accessi al server. Qualunque file non accessibile all'utente specificato non sarà distribuito via Web. L'utente di default per User è apache. L'utente User dovrebbe avere i privilegi per accedere solamente ai file visibili via Web. I processi CGI vengono eseguiti con i diritti di User. L'utente User non dovrebbe essere autorizzato a eseguire alcun codice che non sia inteso come risposta alle richieste HTTP. Nota Nota Bene Per ragioni di sicurezza, Apache HTTP Server non funzionerà come User root. Impostare User come root ridurrà notevolmente la sicurezza del vostro server Web. Il processo padre httpd viene dapprima eseguito come root durante le normali operazioni, ma viene poi immediatamente rinviato all'utente apache. Il server deve essere eseguito con i diritti di root per collegarsi a una porta inferiore alla 1024 (la comunicazione standard sicura per il Web è sulla porta 443, mentre la comunicazione standard non sicura è sulla porta 80). Le porte inferiori alla 1024 sono riservate all'uso del sistema, perciò sono accessibili solo dall'utente root. Quando il server si è collegato alla propria porta, comunque, rinvia il processo al comando User prima di accettare qualsiasi richiesta di connessione. Group La direttiva Group è analoga alla direttiva User. Group imposta il gruppo in base al quale il server risponderà alle richieste. Il gruppo di default è apache. ServerAdmin ServerAdmin è l'indirizzo di posta elettronica dell'amministratore del server Web. Questo indirizzo di posta elettronica appare nei messaggi di errore delle pagine Web generate dal server, in modo che gli utenti possano riferire eventuali problemi inviando un messaggio all'amministratore del server. ServerAdmin è impostato per default su root@localhost. Normalmente alla direttiva ServerAdmin viene attribuito il valore webmaster@your_domain.com. Assegnate dunque l'alias webmaster alla persona responsabile del server Web nel file /etc/aliases. Infine, eseguite /usr/bin/newaliases per aggiungere il nuovo alias. ServerName Potete usare la direttiva ServerName per attribuire un nome host e un numero di porta (corrispondenti alla direttiva Listen) per il server. Il nome non deve corrispondere al nome reale del computer host. Per esempio, potete usare www.your_domain.com se il nome reale del vostro server è foo.your_domain.com. ServerName deve essere un nome valido per il vostro DNS (Domain Name Service) affinché tutto funzioni correttamente (evitate di inserire nomi inventati). Per esempio: ServerName www.your_domain.com:80 Se specificate un ServerName, accertatevi che nel file /etc/hosts esista una corrispondenza tra indirizzo IP e nome del server. DocumentRoot DocumentRoot è la directory che contiene la maggior parte dei file HTML in risposta alle richieste. La directory DocumentRoot di default per entrambi i server Web (sicuro e non sicuro) è /var/www/html. Per esempio, il server Web può ricevere una richiesta per il documento seguente: http://vostro_dominio/foo.html Il server cercherà il file riportato di seguito nella directory di default: /var/www/html/foo.html Se desiderate modificare la direttiva DocumentRoot in modo che non sia condivisa dal server Web non sicuro e da quello sicuro, consultate la sezione Utilizzare gli host virtuali. Directory I tag e sono usati per raggruppare un insieme di direttive di configurazione da applicare solo a una particolare directory e a tutte le sue sottodirectory. Tutte le direttive applicabili a una directory possono essere usate all'interno dei tag . Allo stesso modo, i tag possono essere utilizzati in applicazione a uno o più file specifici. Per default, alla directory root vengono applicati i parametri più restrittivi, tramite le direttive Options (consultate la sezione Options) e AllowOverride (consultate la sezione AllowOverride). Con questa configurazione, alle directory che necessitano di impostazioni meno restrittive devono essere assegnate in modo esplicito quelle impostazioni. Usando i tag Directory, DocumentRoot avrà parametri meno restrittivi, in modo tale da poter effettuare le richieste HTTP. La directory cgi-bin è impostata in modo da permettere l'esecuzione degli script CGI tramite l'opzione ExecCGI. Se dovete eseguire degli script CGI presenti in un'altra directory, impostate la direttiva ExecCGI per quella directory. Per esempio, se la vostra directory cgi-bin è /var/www/cgi-bin, ma volete eseguire anche gli script CGI presenti in /home/my_cgi_directory, aggiungete una direttiva ExecCGI a una serie di direttive Directory come quelle che seguono nel file httpd.conf: Options +ExecCGI Per poter eseguire gli script CGI presenti in /home/my_cgi_directory, oltre a impostare ExecCGI è necessario compiere ulteriori operazioni. Innanzitutto, eliminate il commento dalla direttiva AddHandler per identificare i file con estensione .cgi come script CGI. Per sapere come impostare AddHandler consultate la sezione AddHandler. I permessi per gli script CGI e l'intero percorso vanno impostati su 0755. Options La direttiva Options verifica le caratteristiche del server disponibili in una particolare directory. Per esempio, con i parametri restrittivi specificati per la directory root, la direttiva Options è impostata solo per FollowSymLinks: quindi non sono autorizzate altre caratteristiche, tranne quella che consente al server di seguire i link simbolici nella directory root. Per default, nella directory DocumentRoot, la direttiva Options è configurata per contenere Indexes, Includes e FollowSymLinks. Indexes permette al server di generare un elenco di directory per una directory, se non è specificata alcuna direttiva DirectoryIndex (per esempio: index.html). Includes indica che sono autorizzati gli include lato server. FollowSymLinks consente al server di seguire i link simbolici in questa directory. È inoltre necessario inserire la direttiva Options per le directory degli host virtuali, se desiderate che questi riconoscano quelle particolari caratteristiche. Mediante la linea Options Includes, contenuta all'interno della sezione delle direttive , gli include lato server sono già abilitati. Tuttavia, se desiderate che un host virtuale riconosca l'autorizzazione degli include lato server, dovrete inserire nei tag del vostro host virtuale una sezione simile alla seguente: Options Includes AllowOverride La direttiva AllowOverride consente di stabilire se le Options possono essere ridefinite dalle dichiarazioni presenti in un file .htaccess. Per default, sia nella directory root, sia nella directory DocumentRoot non è permesso sovrascrivere il file .htaccess. Order La direttiva Order controlla semplicemente l'ordine di valutazione delle direttive allow e deny. Il server è configurato per valutare prima le direttive Allow per la directory DocumentRoot. Allow Allow specifica quali richieste possono accedere a una determinata directory. Il campo richiedente può essere all, un nome di dominio, un indirizzo IP, una parte dell'indirizzo IP, una coppia rete/netmask e così via. La directory DocumentRoot è configurata per permettere l'accesso da all (ossia da tutti i client). Deny Deny funziona esattamente come allow, ma specifica quali accessi negare. Per default, la vostra DocumentRoot non è configurata per negare alcuna richiesta. UserDir UserDir è il nome di una sottodirectory della home di ciascun utente, in cui vanno collocati i file HTML personali che il server Web utilizza. Per default, la sottodirectory è public_html. Per esempio, il server può ricevere la richiesta seguente: http://vostro_dominio/~nomeutente/foo.html Il server cerca il /home/username/public_html/foo.html Nell'esempio precedente /home/username è la directory home dell'utente (ovviamente il percorso di default della directory home può essere diverso sul vostro sistema). Assicuratevi che i permessi della directory home dell'utente siano corretti. L'impostazione esatta è 0711. È necessario attivare i bit di lettura (r) e di esecuzione (x) nella directory public_html (anche 0755 funziona correttamente). I file presenti in questa directory devono essere impostati almeno su 0644. Questa direttiva è impostata a disable per default. DirectoryIndex La direttiva DirectoryIndex è la pagina predefinita che viene restituita al client quando un utente richiede l'indice di una directory, specificando uno slash (/) dopo il nome della directory. Quando un utente richiede la pagina http://vostro_dominio/questa_directory/, riceve la pagina DirectoryIndex, se presente, o un elenco di directory generato dal server. La configurazione di default di DirectoryIndex è index.html index.htm index.shtml index.php index.php4 index.php3 index.cgi. Il server cerca di individuare uno di questi file e restituisce il primo file che trova. Se non trova nessun file, e per questa directory è impostata la direttiva Options Indexes, il server genera e restituisce un elenco delle sottodirectory e dei file contenuti nella directory in formato HTML. AccessFileName AccessFileName attribuisce un nome al file che il server utilizza per accedere alle informazioni di controllo in ogni directory. In genere, il server Web è impostato di default per utilizzare .htaccess, se disponibile, per le informazioni sul controllo degli accessi di ciascuna directory. Immediatamente dopo la direttiva AccessFileName, una serie di tag Files controlla l'accesso ai file che iniziano con .ht. Per ragioni di sicurezza queste direttive negano l'accesso Web a qualunque file .htaccess (o a qualunque altro file che inizi con .ht). CacheNegotiatedDocs Per default, il server Web chiede ai server proxy di non conservare nella cache i documenti trasmessi in base al contenuto (ovvero quei documenti che potrebbero essere modificati mediante l'inserimento del richiedente). Eliminando il commento dalla direttiva CacheNegotiatedDocs viene disabilitata questa funzione e i server proxy sono autorizzati a conservare i documenti nella cache. UseCanonicalName Per default, UseCanonicalName è impostato su on. UseCanonicalName permette a un server di creare un URL che faccia riferimento a sé stesso, utilizzando ServerName e Port. Quando il server fa riferimento a sé stesso per rispondere alle richieste di un client, utilizza questo URL. Se, però, impostate UseCanonicalName su off, il server utilizza il valore inviato dal client per fare riferimento a sé stesso. TypesConfig TypesConfig definisce il nome del file che imposta le mappature dell'elenco predefinito dei tipi MIME (le estensioni dei file per i tipi di contenuto). Il file TypesConfig di default è /etc/mime.types. Invece di modificare questo file, si consiglia di aggiungere i tipi MIME tramite la direttiva AddType. Per maggiori informazioni su questa direttiva, consultate la sezione AddType. DefaultType DefaultType definisce il tipo MIME di default per i documenti non riconosciuti. Secondo la configurazione di default, se il server Web non riconosce un tipo di file, lo considera come un file in formato testo. IfModule I tag e raggruppano le direttive condizionali. Le direttive presenti all'interno dei tag IfModule vengono elaborate solo a una di queste due condizioni: se il modulo specificato all'interno del tag è caricato in httpd, se il simbolo "!" (punto esclamativo) è inserito prima del nome del modulo oppure solo se il modulo non è compilato nel primo tag . Il file mod_mime_magic.c è incluso nei tag IfModule. Il modulo mod_mime_magic è simile al comando file di UNIX, che legge i primi byte del contenuto di un file e utilizza "numeri magici" e altre istruzioni per stabilirne il tipo MIME. Se il modulo mod_mime_magic viene compilato per Apache HTTP Server, i tag IfModule indicano al modulo dove trovare il file delle istruzioni: in questo caso /usr/share/magic. Il modulo mod_mime_magic non è compilato per default. Se desiderate utilizzarlo, consultate le informazioni su come aggiungere i moduli al vostro server contenute in la sezione Aggiungere moduli al server. HostnameLookups HostnameLookups può essere impostato su on, off oppure double. Se autorizzate la direttiva HostnameLookups (impostandola su on), il vostro server risolve in modo automatico l'indirizzo IP per ogni connessione che richiede un documento dal server Web. Risolvere l'indirizzo IP significa che il vostro server si connette una o più volte al DNS per individuare il nome dell'host che corrisponde a un particolare indirizzo IP. Se impostate HostnameLookups su double, il server esegue un DNS inverso doppio. In altre parole, dopo un lookup "inverso" viene eseguito un lookup "diritto". Almeno uno degli indirizzi IP nel lookup diritto deve coincidere con l'indirizzo derivante dal primo lookup inverso. Di norma dovreste lasciare HostnameLookups impostato su off, poiché le richieste del DNS comportano un carico eccessivo che può causare un rallentamento del server. Se il server è occupato, gli effetti di HostnameLookups sono evidenti. HostnameLookups coinvolge anche Internet nel suo complesso perché si sommano tutte le connessioni individuali create per cercare ogni nome host. Dunque, per evitare problemi con il server Web e per il bene di Internet in generale, è consigliabile lasciare la direttiva HostnameLookups impostata su off. Se desiderate vedere i nomi host nei vostri file di log, dovreste eseguire uno dei tanti tool di analisi dei log in grado di effettuare lookup DNS in modo più efficiente e su scala più ampia nel momento in cui ruotate i file di log. ErrorLog ErrorLog specifica il nome del file dove vengono registrati tutti gli errori del server. Per default, il file di log degli errori è /var/log/httpd/error_log. Il file di log degli errori è il miglior posto dove cercare eventuali errori generati dal server Web o per capire la causa dei malfunzionamenti. LogLevel LogLevel definisce il livello di dettaglio dei messaggi d'errore registrati nel file di log. LogLevel può essere impostato (dal più dettagliato al meno dettagliato) suemerg, alert, crit, error, warn, notice, info o debug. Per default, è impostato su warn. LogFormat Le direttive LogFormat nel file httpd.conf definiscono il formato dei messaggi nel log di accesso. La direttiva LogFormat che verrà utilizzata dipende dalle impostazioni attribuite nella direttiva CustomLog (consultate la sezione CustomLog). CustomLog CustomLog indica il file di log e il suo formato. Nella configurazione di default del vostro server Web, CustomLog definisce il file di log in cui sono registrati gli accessi al server Web: /var/log/httpd/access_log. Se desiderate generare delle statistiche di accesso al sito Web, dovete sapere dove è memorizzato questo file. CustomLog definisce anche il formato del file di log da combinare. Il formato standard è: remotehost rfc931 authuser [date] "request" status bytes referer user-agent remotehost Contiene il nome dell'host remoto. Se il nome non è disponibile tramite il DNS oppure se HostnameLookups è impostato su Off, il campo remotehost conterrà l'indirizzo IP dell'host remoto. rfc931 Non è usato. In questo punto del file di log viene inserito il carattere -. authuser Se viene richiesta l'autenticazione, allora indica il nome che identifica l'utente. Di solito non viene usato e al suo posto viene inserito il carattere -. [date] Data e ora della richiesta. "request" Stringa contenente la stessa richiesta inviata dal browser o dal client. status Codice dello stato HTTP restituito al browser o al client. bytes Dimensione del documento. referer Fornisce l'URL della pagina Web che si è collegata alla richiesta corrente. user-agent Fornisce il nome del browser o del client che effettua la richiesta. ServerSignature La direttiva ServerSignature aggiunge una linea contenente la versione del server Apache e il ServerName del server host a qualsiasi documento generato dal server (per esempio, i messaggi di errore rispediti ai client). Per default, ServerSignature è impostato su on. Se non volete aggiungere queste informazioni, impostatelo su off. Potete anche impostarlo su EMail. In tal caso verrà aggiunto un tag HTML mailto:ServerAdmin. Alias L'impostazione Alias consente alle directory di trovarsi al di fuori di DocumentRoot pur essendo comunque accessibili dal server Web. Qualunque URL che termina con l'alias viene automaticamente risolto nel percorso dell'alias. Nella configurazione di default è già presente un alias. Il server Web può accedere a una directory icons, anche se la directory non si trova in DocumentRoot. La directory icons è in realtà un alias, e non /var/www/html/icons/. ScriptAlias L'impostazione ScriptAlias definisce dove sono localizzati gli script CGI (o gli altri tipi di script). Normalmente è meglio non lasciare gli script CGI all'interno di DocumentRoot, poiché potrebbero essere visualizzati come documenti di testo. Se anche non vi interessasse il fatto che qualcuno veda (e usi) i vostri script CGI, qualche malintenzionato potrebbe scoprire come funzionano e approfittarsi di eventuali "falle" negli script, mettendo a repentaglio la sicurezza del vostro server. La directory cgi-bin è, di default, uno ScriptAlias della directory /cgi-bin/ e si trova in /var/www/cgi-bin/. Per la directory /var/www/cgi-bin è stata impostata la direttiva Options ExecCGI, che abilita l'esecuzione degli script presenti nella directory. Per maggiori informazioni sull'esecuzione di script CGI in directory diverse da cgi-bin, consultate la sezione AddHandler e la sezione Directory. Redirect Quando una pagina Web viene spostata, la direttiva Redirect può essere utilizzata per rimappare il vecchio URL con quello nuovo. Il formato è il seguente: Redirect /percorso/foo.html http://nuovo_dominio/percorso/foo .html Se si riceve una richiesta HTTP per la pagina http://vostro_dominio/percorso/foo.html, il server restituisce la pagina http://nuovo_dominio/percorso/foo.html al client, che di solito cerca di richiamare il documento dal nuovo URL. Per operazioni più avanzate, potete utilizzare il modulo mod_rewrite incluso nel server. IndexOptions IndexOptions controlla l'aspetto degli elenchi delle directory generati dal server aggiungendo icone e descrizioni dei file e così via. Se è impostata la direttiva Options Indexes (consultate la sezione Options), il server Web genera un elenco delle directory quando riceve una richiesta HTTP come la seguente: http://vostro_dominio/questa_directory/ Innanzitutto, il server Web cerca nella directory uno dei file specificati con la direttiva DirectoryIndex (di solito, index.html). Se il server non trova uno di quei file, crea un elenco HTML dei file e delle sottodirectory presenti nella directory. Potete modificare l'aspetto di questa directory usando determinate direttive contenute nel file httpd.conf, tra cui la direttiva IndexOptions. La configurazione di default imposta FancyIndexing su on. Se FancyIndexing è attivato, facendo clic sull'intestazione della colonna potrete organizzare l'ordinamento della visualizzazione secondo quell'intestazione. Con un altro clic sulla stessa intestazione si inverte l'ordine da ascendente a discendente. FancyIndexing visualizza un'icona diversa per ogni tipo di file, a seconda dell'estensione. Se utilizzate la direttiva AddDescription e attivate FancyIndexing, viene visualizzata una breve descrizione dei file nell'elenco delle directory generato dal server. IndexOptions ha vari parametri per selezionare l'aspetto degli elenchi delle directory generate dal server. I parametri possibili sono IconHeight e IconWidth, che permettono al server di includere i tag HEIGHT e WIDTH per le icone delle pagine Web generate dal server. IconsAreLinks gli consente invece di utilizzare le icone come parte del link HTML, insieme al nome del file e così via. AddIconByEncoding Questa direttiva associa un'icona a un particolare tipo di file secondo la codifica MIME negli elenchi di directory generati dal server. Per esempio, il server Web mostra, per default, l'icona compressed.gif accanto ai file di tipo x-compress e x-gzip con codifica MIME. AddIconByType Questa direttiva specifica il nome dell'icona da visualizzare accanto al file con il tipo MIME negli elenchi delle directory generati dal server. Per esempio, il vostro server è impostato per visualizzare l'icona text.gif accanto al file con il tipo MIME di testo. AddIcon AddIcon specifica l'icona da visualizzare negli elenchi delle directory generati dal server per certi tipi di file o per i file che hanno determinate estensioni. Per esempio, il vostro server Web è impostato in modo da mostrare l'icona binary.gif per i file con estensione .bin o .exe. DefaultIcon DefaultIcon specifica l'icona da visualizzare negli elenchi delle directory generati dal server per i file che non hanno altre icone specificate. La direttiva DefaultIcon predefinita per quei file è unknown.gif. AddDescription Potete utilizzare la direttiva AddDescription per visualizzare il testo specificato per certi file negli elenchi delle directory generati dal server (dovrete anche abilitare FancyIndexing come una direttiva IndexOptions). Per specificare i file a cui bisogna applicare questa direttiva, potete nominare file specifici, espressioni con asterisco o estensioni di file. Per esempio potete utilizzare la linea seguente: AddDescription "A file that ends in .ni" .ni In ogni elenco generato dal server Web, tutti i file con l'estensione .ni avranno la descrizione A file that ends in .ni dopo il nome del file. È inoltre necessario attivare la direttiva FancyIndexing. ReadmeName ReadmeName definisce il nome del file (se presente nella directory) che viene aggiunto alla fine degli elenchi delle directory generati dal server. Il server Web cercherà prima di includere il file come documento HTML, poi come file di testo. Nella configurazione di default, ReadmeName è impostato su README. HeaderName HeaderName specifica il nome del file (se presente nella directory) che viene inserito all'inizio degli elenchi delle directory generati dal server. Come per ReadmeName, il server cerca, se possibile, di includere il file in formato HTML o altrimenti in formato testo. IndexIgnore IndexIgnore elenca estensioni di file, parti di nomi di file, espressioni con asterisco o nomi di file completi. Il server Web non include nessun file che corrisponda a quei parametri negli elenchi delle directory generati dal server. AddEncoding AddEncoding definisce le estensioni dei file che hanno una particolare codifica. AddEncoding può essere utilizzato anche per indicare ai browser (non a tutti) di decomprimere certi file mentre vengono scaricati. AddLanguage AddLanguage associa l'estensione di un file a una particolare lingua. Questa direttiva è particolarmente utile quando il server restituisce un documento in base alla lingua di preferenza del client specificata nel browser. LanguagePriority LanguagePriority vi permette di stabilire una lingua prioritaria in cui trasmettere i file se il client non ha specificato alcuna preferenza nel browser. AddType Usate la direttiva AddType per associare un tipo MIME a una estensione di file. Per esempio, se state utilizzando il linguaggio PHP4, il vostro server Web sta utilizzando la direttiva AddType per riconoscere i file con estensione PHP (.php4, .php3, .phtml o .php) come tipi MIME PHP. La seguente direttiva indica a Apache HTTP Server di riconoscere l'estensione .shtml: AddType text/html .shtml AddHandler server-parsed .shtml Dovete includere questa linea all'interno dei tag dell'host virtuale per ogni host virtuale che deve autorizzare gli include lato server. AddHandler AddHandler mappa l'estensione di un file per handler specifici. Per esempio, l'handler cgi-script può essere utilizzato in associazione con l'estensione .cgi per trattare un file che termina con .cgi automaticamente come script CGI. Questo metodo funziona anche al di fuori della directory ScriptAlias, purché seguiate attentamente le istruzioni qui riportate. Nel file httpd.conf è contenuta una linea AddHandler CGI: AddHandler cgi-script .cgi È necessario innanzitutto eliminare il commento dalla linea, dopodiché Apache eseguirà gli script CGI per i file che terminano in .cgi, anche se sono al di fuori di ScriptAlias, impostata di default per localizzare la vostra directory /cgi-bin/ in /var/www/cgi-bin/. Dovete inoltre configurare ExecCGI come Options per ogni directory che contiene uno script CGI. Consultate la sezione Directory per maggiori informazioni sulla configurazione della directory ExecCGI. Accertatevi che i permessi siano impostati correttamente per gli script CGI e per le directory che li contengono. Gli script CGI e l'intero percorso della directory devono essere impostati su 0755. AddHandler deve essere inserito nella configurazione del vostro VirtualHost, se state utilizzando host virtuali e volete che riconoscano anche gli script CGI che si trovano al di fuori di ScriptAlias. Oltre agli script CGI, il vostro server Web utilizza anche AddHandler per elaborare gli HTML e i file imagemap analizzati dal server. Action Action vi permette di associare un contenuto MIME a uno script CGI. In questo modo, quando viene richiesto un file di quel tipo viene eseguito un particolare script CGI. MetaDir MetaDir specifica il nome della directory in cui il vostro server Web deve cercare i file che contengono meta informazioni (ulteriori intestazioni HTTP extra) da includere nella preparazione di documenti. MetaSuffix MetaSuffix specifica il suffisso del file contenente meta informazioni (ulteriori intestazioni HTTP), che dovrebbe trovarsi nella directory MetaDir. ErrorDocument Per default, in caso di problemi o errori, il vostro server Web mostra un messaggio di errore semplice (e di solito criptato) al client richiedente. Al posto dell'impostazione di default, potete utilizzare la direttiva ErrorDocument per personalizzare il messaggio da visualizzare in caso di errore o reindirizzare il client verso una URL locale o esterno. ErrorDocument associa semplicemente il codice HTTP di risposta a un URL o a un messaggio che verrà restituito al client. Importante Importante È necessario includere il messaggio di errore tra virgolette doppie perché sia valido. BrowserMatch La direttiva BrowserMatch consente al server di definire le variabili di ambiente e/o le azioni sulla base del campo dell'intestazione HTTP User-Agent, che identifica il browser del client. Per default, il vostro server Web utilizza BrowserMatch per negare le connessioni a determinati browser con problemi noti e anche per disabilitare i keepalive e i comandi di annullamento delle intestazioni HTTP per i browser che hanno problemi con queste azioni. Location I tag e vi consentono di specificare il controllo dell'accesso in base all'URL. Se desiderate consentire agli utenti di connettersi dal vostro dominio per visualizzare i report sullo stato del server, dovete eliminare i commenti della sezione di direttive riportata di seguito: # # SetHandler server-status # Order deny,allow # Deny from all # Allow from .your_domain.com # Dovete sostituire .your_domain.com con il nome del dominio di secondo livello. Se desiderate fornire report sulla configurazione del server (inclusi i moduli installati e le direttive di configurazione) da richiedere all'interno del vostro dominio, dovrete eliminare i commenti dalle linee riportate di seguito: # # SetHandler server-info # Order deny,allow # Deny from all # Allow from .your_domain.com # Ancora una volta dovete inserire .your_domain.com. ProxyRequests Se eliminate il commento dai tag IfModule delle direttive ProxyRequests, il vostro Apache HTTP Server svolgerà anche le funzioni di un server proxy. È inoltre necessario caricare il modulo mod_proxy. Per informazioni su come caricare i moduli, consultate la sezione Aggiungere moduli al server. ProxyVia Il comando ProxyVia controlla se la linea relativa all'intestazione di HTTP Via: viene inviata con le richieste o le risposte attraverso il server proxy Apache. L'intestazione Via: mostra il nome dell'host se ProxyVia è impostato su On e il nome dell'host e la versione di Apache HTTP Server se è impostato su Full. Qualsiasi linea Via: viene trasmessa senza essere modificata se è impostato su Off e viene invece rimossa se è impostato su Block. Direttive della cache Una serie di direttive relative alla cache sono commentate nei tag IfModule del proxy menzionate sopra. Se state utilizzando la funzionalità server proxy e desiderate abilitare anche la cache proxy, dovete eliminare il commento dalle direttive della cache come descritto. La configurazione di default per le vostre direttive cache dovrebbe adattarsi alla maggior parte delle configurazioni. CacheRoot configura il nome della directory che conterrà i file memorizzati nella cache. La direttiva CacheRoot di default è /var/cache/httpd. CacheSize specifica quanti KB di spazio può utilizzare la cache. Il limite predefinito è 5 KB. CacheGcInterval indica un limite di ore oltre il quale i file nella cache vengono cancellati qualora la cache superasse la quantità massima di spazio consentita (secondo quanto stabilito nella configurazione di CacheSize). Il valore di default per CacheGcInterval è 4 ore. In assenza di una nuova richiesta del server, i documenti HTML rimangono nella cache per un numero massimo di ore configurato in CacheMaxExpire. Il valore di default è 24 ore. CacheLastModifiedFactor si occupa della creazione di una data di scadenza per un documento che non ne possieda una propria. Il valore di default per CacheLastModifiedFactor è 0.1. Questo significa che la data di scadenza per questi documenti è pari a 1/10 della quantità di tempo trascorso dall'ultima modifica. CacheDefaultExpire specifica (in ore) la scadenza di un documento ricevuto tramite un protocollo che non supporta la data di scadenza. La configurazione di default è 1 ora. I documenti ricevuti da un host o dominio conforme alla configurazione in NoCache non vengono memorizzati nella cache. Se conoscete host o domini dai quali non volete memorizzare documenti, eliminate il commento dalla direttiva NoCache e inserite il nome di tali host o domini. NameVirtualHost È necessario utilizzare la direttiva NameVirtualHost per l'indirizzo IP (e, se necessario, il numero di porta) di ogni host virtuale che state configurando. La configurazione degli host virtuali basati sul nome viene utilizzata quando volete configurare diversi host virtuali per altrettanti domini, ma non potete (o non volete) usare indirizzi IP diversi per ogni singolo nome di dominio. Nota Nota Bene Ogni host virtuale basato sul nome funzionerà solo con connessioni HTTP non sicure, dato che non potete utilizzare host virtuali basati sui nomi con un server sicuro. In questo secondo caso, dovreste utilizzare host virtuali basati su indirizzi IP. Se usate un host virtuale basato sul nome, eliminate il commento dalla direttiva NameVirtualHost e aggiungete l'indirizzo IP corretto. Poi inserite le informazioni relative ai differenti domini utilizzando i tag Virtual Host vicino al ServerName per ogni host virtuale e per qualsiasi altra direttiva di configurazione applicabile solo a quell'host virtuale. VirtualHost I tag e si trovano accanto alle direttive di configurazione da applicare a un host virtuale. La maggior parte delle direttive di configurazione può essere utilizzata all'interno dei tag dell'host virtuale e viene poi applicata solo a quel particolare host virtuale. In alcune direttive di configurazione e in alcuni segnaposto si trovano una serie di tag VirtualHost commentati. Per maggiori informazioni sugli host virtuali, consultate la sezione Utilizzare gli host virtuali. Nota Nota Bene Tutto il contesto degli host virtuali SSL è stato spostato nel file /etc/httpd/conf.d/ssl.conf. SetEnvIf La direttiva di configurazione SetEnvIf può essere utilizzata per impostare variabili di ambiente basate sulle intestazioni nella richiesta. Nel file httpd.conf è usata per disabilitare i keepalive HTTP e per consentire al protocollo SSL di chiudere la connessione senza un messaggio di avvertimento da parte del browser client. Questa impostazione è necessaria per alcuni browser che non chiudono in modo affidabile la connessione SSL. Direttive di configurazione per SSL Le direttive SSL incluse nel file /etc/httpd/conf.d/ssl.conf possono essere configurate per abilitare comunicazioni Web sicure utilizzando SSL e TLS. Per maggiori informazioni sulle direttive SSL visitate il sito http://localhost/manual/mod/mod_ssl/ oppure la documentazione relativa ad Apache mod_ssl all'indirizzo http://httpd.apache.org/docs-2.0/mod/mod_ssl.html. Per informazioni sulla configurazione di un server sicuro HTTP Apache, consultate il capitolo relativo alla configurazione di un server sicuro HTTP Apache nella Official Red Hat Linux Customization Guide. Nota Nota Bene Non modificate le vostre direttive SSL se non siete più che certi di quello che state facendo. Nella maggior parte dei casi le direttive di default sono quelle più indicate. Indietro Partenza Avanti Avvio e chiusura di httpd Risali Moduli predefiniti © 2006 Red Hat, Inc. All rights reserved. About Red Hat : Legal statement : Privacy statement : Contact